Part Number Hot Search : 
LTM4645 IR6320G SP6128A SP310ECT 74V1G04S 07FKE SE115 TN9138PM
Product Description
Full Text Search
 

To Download MX93521-V6 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  1 p/n:pm0426 rev. 2.2, jan 20, 1998 all digital voice recorder machine based on the mx93521 vocoder chip 1. features ? excellent sound quality by adopting 4800bps celp speech compression alogorithm. ? silent compression algorithm to further compress si lence between speech. ? flash memory management alogorithm to manage down-graded flash memory to store compressed speech data. with silent compression, one 4mbit flash memory could store up to 18 minutes speech. ? support 4/8/16/32 mbit samsung flash memory or its compatible parts ? support both parallel and serial microprocessor inter face. ? codec interface circuit (support both tp3054 and mx93000) ? host controllable lcd module interface 2.general description this document describes how to implement an all-digital voice recorder using the mx93521 chip. the mx93521 is a digital recorder data pump which is controlled by an external microprocessor to perform various recorder function. the mx93521 is fully controlled by a host controller through a simple host interface protocol. the host could initiate many digital recording functions such as record, play, repeat, search, skip, insertion, message managing and self-diagnosis. also, host could set mx93521 in vocoder mode and use mx93521 as a speech compres- sion/decompression data pump. the functions supported by mx93521 are listed as followed. mode function path record codec-->(compress)-->flash play codec-->(decompress)<--flash record (vocoder) codec-->(compress)-->host play (vocoder) codec-->(decompress)<--host direct codec play mode codec-->(pcm/u-law)<--host download message flash(msg)-->host upload message flash(msg)<--host databank access flash(data)<-- -->host ? host writable message header (4 bytes) for identifica -tion or index purpose ? powerful editing function ? varieties of operating function including rewind, fast forward, repeat and message editing etc. ? voice activated recording ? use flash memory to store user data (data bank) ? upload/download speech message data from/to host ? vocoder mode (voice compressor/ decompressor) ? direct codec play mode (play pcm/u-law data re ceived from host) ? play voice prompt from rom/flash memory ? dtmf tone genarator mx93521
2 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 3.pin configurations 100-lqfp pin assignment?g 3.1 pinout assignments for mx93521 100-pin pqfp (parallel mode) ead7 nc ead8 ead9 ead10 ead11 ead12 ead13 ead14 gnd vdsp ead15 vdsp sclk vdsp dspdr da\ cmclk cfs dspdx sout phdb0 phdb1 phdb2 phdb3 ed9 ed10 ed11 ed12 ed13 vdsp gnd ed14 ed15 xtli xtlo nc nc nc nc mic-e\ spk-e\ rst\ erom sden\ s data wp\ rxcmd nc nc led2\ led1\ nc ce1\ ce2\ nc ale cle x32i x32o packb\ s/p sin codec type r/b mtype0 shold\ mtype2 mtype1 vdsp gnd phdb7 phdb6 phdb5 phdb4 ed8 ed7 ed6 ed5 ed4 ed3 ed2 ed1 gnd vdsp ed0 hold\ holda\ edce\ epce\ erd\ ewr\ ead0 ead1 ead2 ead3 ead4 ead5 ead6 fll\ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 mx93521
3 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 100-pqfp pin assignment?g ead9 ead10 ead11 ead12 ead13 ead14 gnd vdsp ead15 vdsp sclk vdsp dspdr phrdb\ cmclk cfs dspdx phwrb\ phdb0 phdb1 ed11 ed12 ed13 vdsp gnd ed14 ed15 xtli xtlo nc nc nc nc mic-e\ spk-e\ rst\ erom sden\ s data wp\ rxcmd nc nc led2\ led1\ nc ce1\ ce2\ nc ale cle x32i x32o packb\ s/p sin codectype r/b mtype0 shold\ mtype2 mtype1 vdsp gnd phdb7 phdb6 phdb5 phdb4 phdb3 phdb2 ed10 ed9 ed8 ed7 ed6 ed5 ed4 ed3 ed2 ed1 gnd vdsp ed0 hold\ holda\ edce\ epce\ erd\ ewr\ ead0 ead1 ead2 ead3 ead4 ead5 ead6 fll\ gnd ead7 ead8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 mx93521
4 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 100-lqfp pin assignment?g 3.2 pinout assignments for mx93521 100-pin tqfp (serial mode) ead7 nc ead8 ead9 ead10 ead11 ead12 ead13 ead14 gnd vdsp ead15 vdsp sclk vdsp dspdr da\ cmclk cfs dspdx sout bio0 bio1 bio2 bio3 ed9 ed10 ed11 ed12 ed13 vdsp gnd ed14 ed15 xtli xtlo nc nc nc nc mic-e\ spk-e\ rst\ erom sden\ s data wp\ rxcmd nc nc led2\ led1\ nc ce1\ ce2\ nc ale cle x32i x32o packb\ s/p sin codec type r/b mtype0 shold\ mtype2 mtype1 vdsp gnd bio7 bio6 bio5 bio4 ed8 ed7 ed6 ed5 ed4 ed3 ed2 ed1 gnd vdsp ed0 hold\ holda\ edce\ epce\ erd\ ewr\ ead0 ead1 ead2 ead3 ead4 ead5 ead6 fll\ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 mx93521
5 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 100-pqfp pin assignment?g ead9 ead10 ead11 ead12 ead13 ead14 gnd vdsp ead15 vdsp sclk vdsp dspdr phrdb\ cmclk cfs dspdx phwrb\ bio0 bio1 ed11 ed12 ed13 vdsp gnd ed14 ed15 xtli xtlo nc nc nc nc mic-e\ spk-e\ rst\ erom sden\ s data wp\ rxcmd nc nc led2\ led1\ nc ce1\ ce2\ nc ale cle x32i x32o packb\ s/p sin codectype r/b mtype0 shold\ mtype2 mtype1 vdsp gnd bio7 bio6 bio5 bio4 bio3 bio2 ed10 ed9 ed8 ed7 ed6 ed5 ed4 ed3 ed2 ed1 gnd vdsp ed0 hold\ holda\ edce\ epce\ erd\ ewr\ ead0 ead1 ead2 ead3 ead4 ead5 ead6 fll\ gnd ead7 ead8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 mx93521
6 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 symbol type pin # (pqfp) pin # (lqfp) description vdsp 23,43,69,84,41,39 20,40,66,81,38,36 5v power source gnd 24,44,53,70,85 21,41,67,82 ground fll\ i 54 51 fll\ low to set mx93521 running from single low crystal xtli 88 85 32.256mhz crystal input xtlo 89 86 32.256mhz crystal output rst\ i 96 93 power on reset, schmite triggered packb\ oa 14 11 in serial mode, packb\ is n.c. in parallel mode, packb\ becomes low when mx93521 write data to bio and high when host read from bio. hold\ i 67 64 hold dsp clock down and release bus holda\ oa 66 63 ack to hold\ signal erom i 97 94 disable internal rom, use external rom only sclk i 40 37 tr ansmit/receive data clock x32o oa 13 10 32.768khz crystal output x32i 12 9 32.768khz crystal input 4.pin description 4.2 dsp external memory(40 pins) symbol type pin # (pqfp) pin # (lqfp) description ead0-ead15 ob 61~55,52~45,42 58~52,50,48~42,39 address bus ed0~ed15 i/ob 68,71~83,86~87 65,68~80,83~84 data bus edce\ ob 65 62 external data chip enable epce\ ob 64 61 resered for future use erd\ ob 63 60 flash external read ewr\ ob 62 59 flash external write nc 90~93 87~90 no connection 4.3 up interface(10 pins) 4.3.1 serial interface:(upmodx=1) 4.1 dsp basic (22 pins ) symbol type pin # (pqfp) pin # (lqfp) description da\ oc 37 34 data available (output port opt17) sout oc 33 30 ser ial data out (output port opt16) bio(7..0) ob 25~32 22~29 drive lcd display
7 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 4.3.2 parallel interface:(upmodx=0) symbol type pin # (pqfp) pin # (lqfp) description phrdb\ i 37 34 host read phwrb\ i 33 30 host write phdb(7:0) b 25~32 22~29 host data bus 4.4 codec (4 pins) symbol type pin # (pqfp) pin # (lqfp) description cfs ob 35 32 codec frame sync, 8khz cmclk ob 36 33 codec master clock, 1.536mhz dspdx oa 34 31 codec data transmit dspdr i 38 35 codec data receive 4.5 opt:out port(16 pins) symbol type pin # (pqfp) pin # (lqfp) description cle oc 11 8 flash memory command latch enable ale oc 10 7 flash memory address latch enable n.c. 6,9 3,6 ce2\ oc 8 5 chip enable 2 ce1\ oc 7 4 chip enable 1 led1\ oc 5 2 led1 enable led2\ oc 4 1 led2 enable n.c. dr-v5 2,3 rxcmd dr-v5 oc 1 98 received command (toggle when re ceived command from host) wp\ oc 100 97 flash memory write protection sdata oc 99 96 serial data transfer (for mx93000) sden\ oc 98 95 serial data enable (for mx93000) spk-e oc 95 92 speaker enable,hi-active mic-e\ oc 94 91 microphone enable
8 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 4.6 ipt:input port(8 pins) symbol type pin # (pqfp) pin # (lqfp) description mtype1 i 22 19 memory type select 1 mtype2 i 21 18 memory type select 2 shold\ i 20 17 power down detect mtype0 i 19 16 memory type select 0 r/b i 18 15 flash memory ready/busy codectype i 17 14 codec select (tp3054b or mx93000) sin i 16 13 serial data input s/p\ i 15 12 serial/paralled interface note:oa:2ma,ob:4ma,oc:16ma output current
9 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 5.1.1 configuration 5.1 host controller interface 5. host controller interface out1 host out2 in1 in2 out3 in3 sclk mx93521 serial mode sin da\ s/p\ sout rst\ rxcmd 40 15 vcc 16 96 37 33 1 host sclk phwrb\ phrdb\ packb\ sin rst\ phdb0-7 rxcmd out1 out2 in1 out3 d0-7 in2 mx93521 parallel mode s/p\ 40 15 gnd philo\ 39 vcc 16 32-25 14 37 33 96 1
10 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 5.1.2 timing diagrams host should cycle phwrb\ after writing data to phdb0-7. mx93521 will read data from phdb0-7 on the falling edge of sclk (rising edge of phwrb\). rxcmd will be toggled if command byte has been processed by mx93521 the phwrb\ signal will cause mx93521 to latch data from bus phdb0-7 to mx93521 internal register. the invertted signal of phwrb\ will trigger mx93521 int1\ to read and process the received data byte from internal register. due to the interrupt contention, there might be an up to 50 us delay between the rising edge of phwrb\ and int1\ actually being served. to keep from command overrun, host should check if rxcmd toggled or wait 50 usec before sending next command byte to mx93521. host write timing (parallel mode) when mx93521 write data to phdb0-7, packb\ will become low. host needs to poll the status of packb\ continu- ously. when host detect low state on packb\, host should read out data from phdb0-7. after host read the data from phdb0-7, packb\ will be reset to high. the maxima delay between mx93521 write data to phdb0-7 and packb\ become low is 10 ns. the maxima delay between rising edge of phrdb\ and packb\ become high is also 10 ns. host read timing (parallel mode) phdb0-7 phwrb\ host write timing (parallel mode) sclk (int1\) rxcmd ts tp tp th phdb0-7 packb\ host read timing (parallel mode) phrdb\ ts ta
11 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 host write timing (serial mode) rxcmd become low when start bit is received from host and toggle state when mx93521 received each following data bit or stop bit from host. thus, instead of waiting for a fixed period of time (50us) to send a command bit, host could send the following command bit as soon as rxcmd toggled from previous state. the delay between the falling edge of sclk and the rxcmd togglling time is range from 1 us to 50 us host write timing (serial mode) host output data sin host output clock sclk rxcmd dsp sampling from sin host send data 61h tp dsp ts tp start d0 1 d1 0 d2 0 d3 0 d4 0 61h d5 1 d6 1 d7 0 stop tp tp
12 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 host read timing (serial mode) sout response time is 5-40us from the falling edge of sclk it is recommended that host sample sout right before the falling edge of sclk up interface timing: min max data setup time (ts) 10ns data hold time (th) 2ns data process time (tp) 1us 50us packb\ acknowledge time (ta) 5ns host read timing (serial mode) dsp inform host data available da\ host output clock sclk dsp output data sout host sampling from sout dsp send data 49h to host 5-40us, sout response time >50us, clock rate start x d0 1 d1 0 d2 0 d3 1 d4 0 49h d5 0 d6 1 d7 0 stop
13 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 5.2 mx93521 io interface 5.2.1 output port pin power down state led1\ o 5 led1 control high led2\ o 4 led2 control high uo0* o 3 user programmable output port high uo1* o 2 user programmable output port high uo2* o 1 user programmable output port high * user programmable output port are only available in dr-v3 and dr-v4 version 5.2.2 flash memory interface mx93521 pin flash po wer down state mtype1 i 22 gnd 0: samsung mtype2 i 21 gnd 0: samsung mtype0 i 19 vcc (1:km29n16000, 0:km29n040) cle o 11 cle low ale o 10 ale low erd\ o 63 rd\ ce2\ o 8 ce2\ high ce1\ o 7 ce1\ high ewr\ o 62 wr\ r\b i 18 r/b\ wp\ o 100 wp\ low ed0 io 68 io0 ed1 io 71 io1 ed2 io 72 io2 ed3 io 73 io3 ed4 io 74 io4 ed5 io 75 io5 ed6 io 76 io6 ed7 io 77 io7 5.2.3 codec interface mx93521 pin po wer down state codectype i 17 (1: mx93000, 0:tp3054) dspdr o 38 dspdx o 34 cfs o 35 cmclk o 36 sdata o 99 high sden\ o 98 high spk_e o 95 low mic_e\ o 94 high
14 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 5.2.4 up serial mode interface mx93521 up lcd rxcmd o in3 (optional) mx93521 rxd command indicator s/p\ i vcc high, serial mode sclk i out1 serial clock da\ o in1 data available sout o in2 serial data output shold\ i out3 dsp hold sin i out2 serial data input rst\ i out4 dsp reset bio2 o e bio3 o rs bio4 o d4 bio5 o d5 bio6 o d6 bio7 o d7 mx93521 up lcd s/p\ i gnd low, par allel mode sclk i out1\ phrdb\ i out2 read phwrb\ i out1 write shold\ i out3 dsp hold rst\ i out4 dsp reset philo\ i vcc high, byte mode sin i in1 sin should be connected to packb\ externally packb\ o in1 a cknowledge rxcmd o in2 (optional) mx93521 rxd command indicator phdb0 i/o d0 phdb1 i/o d1 phdb2 i/o d2 phdb3 i/o d3 phdb4 i/o d4 phdb5 i/o d5 phdb6 i/o d6 phdb7 i/o d7 when shold\ is low, mx93521 will go to power down mode. when shold\ change from low to high, dsp will power up and send ack0 to host 5.2.5 up parallel mode interface
15 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 d7 d6 d5 d4 d3 d2 d1 d0 0 0 0 0 1 b b b 008h point to specific message 0 0 0 1 0 b b b 010h get current message infomation 0 0 0 1 1 b b b 018h delete message(s) 0 0 1 0 0 b b b 020h rec/play misc. function 0 0 1 0 1 b b b 028h record message 0 0 1 1 0 b b b 030h play message 0 0 1 1 1 b b b 038h skip forward/backward play 0 1 0 0 0 b b b 040h misc. function 0 1 0 0 1 b b b 048h t one generator 0 1 0 1 1 b b b 058h mx93000 codec misc. function 0 1 1 0 0 b b b 060h led display 0 1 1 0 1 b b b 068h write compressed voice data to mx93521 0 1 1 1 0 b b b 070h lcd command 0 1 1 1 1 b b b 078h lcd data 1 0 0 0 0 b b b 080h output counter 1 0 0 0 1 b b b 088h download/upload message dr-v5 1 0 0 1 0 b b b 090h set silence level dr-v4 1 0 0 1 1 b b b 098h set rom/ram wait state dr-v5 1 0 1 0 0 b b b 0a0h read/write ram dr-v4 1 0 1 0 1 b b b 0a8h read rom dr-v5 1 0 1 1 x b b b 0bxh data bank functions dr-v4 1 1 0 0 x b b b 0cxh data bank functions dr-v4 1 1 0 1 0 b b b 0d0h data bank functions dr-v4 1 1 1 1 1 b b b 0f8h play v oice prompt dr-v4 bbb:bytes send following this command 6. host interface software command set summary 6.1 host to mx93521 commands when mx9521 received a command from host, it will always respond the command with a acknowledge. the valid commands and corresponded acknowledge are described as below. mx93521 to host acknowledges (ok messages) ack0: 0a0h, no data accompnied this acknowledge ack1: 0a1h, 1 data accompnied this acknowledge ack2: 0a2h, 2 data accompnied this acknowledge ack6: 0a6h, 6 data accompnied this acknowledge mx93521 to host acknowledges (error messgaes) err0(0e0h): command error err1(0e1h): out of memory, mx93521 cannot perform record function err2(0e2h): no message found, mx93521 cannot perform play function err3(0e3h): no flash memory detected when power on err4(0e4h): mx93521 busy err5(0e5h): v ocoder mode, play buffer full, data rejected err6(0e6h): no previous or next message found err7(0e7h): mx93000 command busy err8(0e8h): no empty block could be allocated for data bank usage dr-v4
16 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 0a1h+000h detect samsung km29n040 flash memory 0a1h+001h d etect samsung km29n16000 flash memory 0a1h+002h reserved 0a1h+003h reserved 0a1h+004h reserved 0a1h+005h reserved 0a1h+006h reserved 0a1h+007h reserved err3(0e3h) no memory detected start clear mx93521 internal ram read systemsetup serial or parallel? tp3054 or mx93000? 4m or 16m flash memory init lcd format flash memory & create data link yes yes flash memory id correct? is data link in flash memory correct? is check data link 2nd time? flash memory error send cmd e3h flash memory ok send cmd a1h+xxh mx93521 normal operation no no no 6.2 mx93521 power on initialization flow chart
17 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 6.3 host to mx93521 command descriptions command 09h function: move message pointer return: ack0 return: err6, if reach the first or the last message in the memory db7 db6 db5 db4 db3 db2 db1 db0 00001001 dmmmmmmm if current message number is n, d=0, jump forward d=1, jump backward m=001h, point to the message (n+1) m=001h, point to the message (n-1) m=002h, point to the message (n+2) m=002h, point to the message (n-2) m=07fh, point to the last message m=07fh, point to the first message command 0ah dr-v5 function: p oint to specefic message return: ack0 return: err2, if no such message found in the flash memory db7 db6 db5 db4 db3 db2 db1 db0 0000101 0 m m m m m m m m message number (high byte) m m m m m m m m message number (low byte) *the message pointer is point to the last message in the flash memory upon power on. samples: forward to the next message 09h 01h rewind to the previous message 09h 81h forward to the last message 09h 7fh rewind to the the first message 09h ffh move message pointer to message #258 (102h) 0ah 01h 02h
18 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 10h function: get current message infomation return: a ck6, data1, data2, data3, data4, data5, data6 or ack0 db7 db6 db5 db4 db3 db2 db1 db0 0001000 0 data1: high byte of current message number data2: low byte of current message number data3: user data #1 data4: user data #2 data5: user data #3 data6: user data #4 *return ack0 when no message in the memory samples: get current message infomation 10h function: attach user data to current message return: ack0 or err0 db7 db6 db5 db4 db3 db2 db1 db0 00010 bb b user data #1 user data #2 user data #3 user data #4 * the user data is default to 0ffh * any data writen with this command will be and with previous data * when user data #1 is 055h. if write data 0aah to it again, user data #1 will become 0h * if no message in the flash memory, mx93521 will return err0 command 11h command 12h command 13h command 14h samples: attach data 12h to current message 11h 12h attach data 12h/34h to current message 12h 12h 34h attach data 12h/34h/56h to current message 13h 12h 34h 56h attach data 12h/34h/56h/78h to current message 14h 12h 34h 56h 78h
19 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 19h function: delete message(s) return: ack0 after deletion completed db7 db6 db5 db4 db3 db2 db1 db0 00 0 1 1 0 0 1 dm m m m m m m if current message number is n d=0, delete forward m=001h, delete one message after message #n (msg #n will be deleted) m=002h, delete two messages after message #n (msg #n, #n+1 will be deleted) m=07fh, delete all messages after message #n (msg #n, #n+1,.., #last will be deleted) d=1, delete backward m=001h, delete one message before message #n (msg #n will be deleted) m=002h, delete two messages before message #n (msg #n, #n-1 will be deleted) m=07fh, delete all messages before message #n (msg #n, #n-1,.., #1 will be deleted) samples: delete current message 19h 01h delete current & next message 19h 02h delete current & previous message 19h 82h delete all messages after & include current message 19h 7fh delete all messages before & include current message 19h ffh command 21h function: rec/play misc function return: db7 db6 db5 db4 db3 db2 db1 db0 0010000 1 mmmmmmm m * this command only valid when in record/play mode m function acknowledge mode 01h stop recording ack2,chksum_h,chksum_l rec 01h stop playing ack0 play 02h rec/play pause on/off ack0 rec/play 04h turn on counter display on lcd ack0 rec/play 08h delete playing message ack0 play 10h set repeat start point ack0 play 20h set repeat end point ack0 play 40h disable repeat mode ack0 play 80h set mark ack0 rec/play if host send command 21h/04h after rec or play start, mx93521 will automatically display a 5-digit rec or play counter mm:ss at current lcd cursor. mm is minute. ss is second.
20 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 function : record msg bbb = 000, 001, 010, 011, 100 return : ack2, msgnum_h, msgnum_l return : ack1, format (vocoder mode, format=81h when recording with new format) (vocoder mode, format=80h when recording with old format) return: err1, when out of flash memory, cannot perform record db7 db6 db5 db4 db3 db2 db1 db0 00101bbb user data #1 user data #2 user data #3 user data #4 * user data will be stored in the flash memory * when record, mx93521 will not switch mic on automatically, host must turn on mic before record and turn off mic after record stop samples: record message without user data 28h record message with 1 user data 12h 29h 12h record message with 2 user data 12h, 34h 2ah 12h 34h record message with 3 user data 12h, 34h, 56h 2bh 12h 34h 56h record message with 4 user data 12h, 34h, 56h, 78h 2ch 12h 34h 56h 78h command 28h command 29h command 2ah command 2bh command 2ch function: play message return: a ck2, msgnum_h, msgnum_l, ack0(vocoder mode) return: err2, no message to play db7 db6 db5 db4 db3 db2 db1 db0 00110001 m m m m m m m m length (sec / unit) m=000h, play till the end of message m=001h, play current message for 1 sec m=080h, play current message for 128 sec or reach the end of message m=0ffh, play current message for 255 sec or reach the end of message * when play, mx93521 will not switch spkr on automatically, host must turn on spkr before play and turn off spkr after play stop samples: play message till the end of message 30h play message till the end of message 31h 00h play first 3 sec of current message 31h 03h command 30h command 31h
21 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 32h function: skip first m frames in the message with playback return: ack2,msgnum_h,msgnum_l db7 db6 db5 db4 db3 db2 db1 db0 00011 010 h h h h h h h h frame number (hi-byte) l l l l l l l l frame number (lo-byte) , 20ms/unit samples: play this message with skip first 200 ms 32h 00h 0ah * this setting will be clear after play end of this message. command 39h function: jump to mark return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 001 1100 1 dmm mmmm m d=0, forward d=1, backward m=00h, normal playing m=01h, forward/rewind to the 1st found mark from current position m=02h, forward/rewind to the 2nd found mark from current position .. m=7fh, forward/backward to the 127th found mark from current position if current playing position is at pos#a, command 39h/01h will forward to mark#1 command 39h/02h will forward to mark#2 command 39h/03h will forward to mark#3 command 39h/04h will forward to mark#4 command 39h/05h will forward to the end of message command 39h/81h will rewind to the head of message if current playing position is at pos#b, command 39h/01h will forward to mark#3 command 39h/02h will forward to mark#4 command 39h/03h will forward to the end of message command 39h/81h will rewind to mark#2 command 39h/82h will rewind to mark#1 command 39h/83h will rewind to the head of message * if two marks are set too close to each other(<2 second), the second mark will be ignored. mark#1 - - pos#a - pos#b mark#2 - mark#3 - mark#4 -
22 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 3ah function: f ast forward/backward playing return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 001 110 10 dmmmmm mm u u u u u u u u unit length (20ms/unit) d=0, forward m=00h, play 1 unit, skip 0 unit (normal play speed) m=01h, play 1 unit, skip 1 unit (2x speed) m=02h, play 1 unit, skip 2 unit (3x speed) m=03h, play 1 unit, skip 3 unit (4x speed) m=07h, play 1 unit, skip 7 unit (8x speed) .. m=7fh, play 1 unit, skip 127 unit (128x speed) d=1, backward m=01h, play 1 unit, rewind 1 unit (repeat same unit) m=02h, play 1 unit, rewind 2 unit (1x speed rewind) m=03h, play 1 unit, rewind 3 unit (2x speed rewind) m=05h, play 1 unit, rewind 5 unit (4x speed rewind) .. m=7fh, play 1 unit, rewind 127 unit (126x speed) samples: normal playing 39h 00h forward to the 1st found mark 39h 01h rewind to the 2nd found mark 39h 82h normal playing 3ah 00h 01h play 20ms and skip 20ms (2x speed) 3ah 01h 01h play 20ms and rewind 60ms (2x speed) 3ah 83h 01h play 40ms and skip 40ms 3ah 01h 02h play 100ms and skip 200ms 3ah 02h 05h play 100ms and rewind 200ms 3ah 82h 05h
23 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 41h function: misc function return: db7 db6 db5 db4 db3 db2 db1 db0 010000 01 mmmmmm mm m function ackowledge remark 01h toggle vocoder mode ack0 02h append recording ack0 03h overwrite recording ack0 04h toggle spkr on/off ack0 valid only when using tp3054 05h voice activated recording dr-v4 ack0 06h linear mode codec interface dr-v4 ack0 07h u-law mode codec interface dr-v4 ack0 08h toggle mic on/off ack0 valid only when using tp3054 09h play accross message boundary dr-v4 ack0 0ah play within message boundary dr-v4 ack0 0bh 4 direct codec access dr-v5 ack0 0ch 5 old data format dr-v5 ack0 0dh 5 new data format dr-v5 ack0 10h 1 erase all message ack0 ack after erase complete 11h 2 hard erase flash memory dr-v4 ack0 ack after erase complete 12h reinitial flash memory ack0 ack after erase complete 20h check busy/idle status ack0 / err4 40h check available block ack2,blkcnt_h, blkcnt_l 41h check total block dr-v4 ack2,blkcnt_h, blkcnt_l 42h check available time dr-v4 ack2,min,sec 43h check total time dr-v4 ack2,min,sec 44h check message length dr-v4 ack2,min,sec 80h 3 overrun counter ack2,cnt_h,cnt_l vocoder mode 81h 3 get message checksum dr-v4 ack2,cs_h,cs_l vocoder mode 1 the command 41h/10h erase all data in good blocks. after block erase, the flash management data will be written back to the flash memory. if host use flash memory as speech data memory and data bank memory. the command 41h/10h will erase both of the memory. to erase only speech memory, use command 19h. to erase data bank memory, use command 0cah. the commands to control data bank memory are described from command 0b0h to command 0d6h 2 prior samsung ship their flash memory to customer, they will test the parts and randomly write data 00h to those bad blocks. during the first power on, mx93521 will scan flash memory and create a good/bad table accordingly. after that, mx93521 will search the good/bad table during power on initialization. unless good/bad table is missing, mx93521 will not do flash memory initialization again.
24 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 we call command 41h/11h is hard erase flash memory. because this command will erase all data in both good and bad blocks. it is possible to erase the data in those bad blocks and turn the bad blocks into good block. in this case, the original bad blocks could be unstable during normal operation. so, we are not recommend to use this command unless it is necessary. after send command 41h/11h, host should issue a hardware reset by toggling rst\. 3 command 41h/80h & 41h/81h are only valid after recording in vocoder mode. 4 host could send pcm or u-law format data to codec directly. in this mode, mx93521 send pcm/u-law data received from host to codec (mx93000 or tp3054). mx93521 could store up to 512 samples data internally. if inetrnal buffer is empty, mx93521 will disable this mode automatically and send cmd 10h to host. at the beginning of direct codec access mode, mx93512 will not send data to codec until mx93521 received 384 samples from host. 5 old data format is the data format used in mx93510 and mx93521 v3. new data format is used in mx93521 v4 and v5. new format supports silence compression. it is always set to use new data format in mx93521 v4. mx93521 v5 will reset to use new data format after power on, record or play. so, if host want to record or play message using old data format, host needs to send command 41h/0ch every time before sending record or play command to mx93521. command 42h function: detect m frames silence on the play/record mode return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 00 1 0 00 1 0 h h h h h h h h silence frame number (hi-byte) l l l l l l l l frame number (lo-byte) , 20ms/unit samples: detect 500 ms silence on the play/record mode 42h 00h 19h * this setting will be clear after play end of this message. * when detect the silence condition , mx93521 will response the data of 28h command 48h dr-v5 function: t one off return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 0 1 0 0 1 0 0 0 tone off command 49h function: beep generator return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 0 1 0 0 1 0 0 1 1000hz tone (100ms on / 100ms off) c c c c c g g g gain ccccc: beep count, maximum 31 beeps
25 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 4bh function: tone generator return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 01001 011 tone l l l l l g g g length (100ms/unit) & gain f15 f14 f13 f12 f11 f10 f9 f8 tone freq (high byte) f7 f6 f5 f4 f3 f2 f1 f0 tone freq (low byte) ggg: 000 gain= -18 db, 100 gain= -42 db 001 gain= -24 db, 101 gain= -48 db 010 gain= -30 db, 110 gain= -56 db 011 gain= -36 db, 111 gain= -62 db function: dual tone generator return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 010 011 10 f15 f14 f13 f12 f11 f10 f9 f8 tone#1 freq (high byte) f7 f6 f5 f4 f3 f2 f1 f0 tone#1 freq (low byte) f15 f14 f13 f12 f11 f10 f9 f8 tone#2 freq (high byte) f7 f6 f5 f4 f3 f2 f1 f0 tone#2 freq (low byte) g1 g1 g1 g1 g1 g1 g1 g1 scale for tone#1 g2 g2 g2 g2 g2 g2 g2 g2 scale for tone#2 command 4eh dr-v5 command 4fh dr-v5 db7 db6 db5 db4 db3 db2 db1 db0 01 0011 11 f15 f14 f13 f12 f11 f10 f9 f8 tone#1 freq (high byte) f7 f6 f5 f4 f3 f2 f1 f0 tone#1 freq (low byte) f15 f14 f13 f12 f11 f10 f9 f8 tone#2 freq (high byte) f7 f6 f5 f4 f3 f2 f1 f0 tone#2 freq (low byte) g1 g1 g1 g1 g1 g1 g1 g1 scale for tone#1 g2 g2 g2 g2 g2 g2 g2 g2 scale for tone#2 l l l l l l l l length (10ms/unit)
26 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 f = (freq/8000)*65536 tone (#) freq (hz) f (decimal) f (hex) f (high) f (low) c5 523.25 4286.464 10beh 10h beh d5 587.33 4811.407 12cbh 12h cbh e5 659.26 5400.658 1519h 15h 19h f5 698.46 5721.784 165ah 16h 5ah g5 783.99 6422.446 1916h 19h 16h a5 880.00 7208.960 1c29h 1ch 29h b5 987.77 8091.812 1f9ch 1fh 9ch c6 1046.50 8572.928 217dh 21h 7dh d6 1174.66 9622.815 2597h 25h 97h e6 1328.51 10883.154 2a83h 2ah 83h f6 1396.91 11443.487 2cb3h 2ch b3h g6 1567.98 12844.892 322dh 32h 2dh a6 1760.00 14417.920 3852h 38h 52h b6 1975.53 16183.542 3f38h 3fh 38h c7 2093.00 17145.856 42fah 42h fah dtmf f1 (hz) f1 (dec) f1 (hex) f2 (hz) f2 (dec) f2 (hex) 1 1209 9904.1 26b0h 697 5709.8 164eh 2 1336 10944.5 2ac1h 697 5709.8 164eh 3 1477 12099.6 2f44h 697 5709.8 164eh a 1633 13377.5 3442h 697 5709.8 164eh 4 1209 9904.1 26b0h 770 6307.8 18a4h 5 1336 10944.5 2ac1h 770 6307.8 18a4h 6 1477 12099.6 2f44h 770 6307.8 18a4h b 1633 13377.5 3442h 770 6307.8 18a4h 7 1209 9904.1 26b0h 852 6979.6 1b44h 8 1336 10944.5 2ac1h 852 6979.6 1b44h 9 1477 12099.6 2f44h 852 6979.6 1b44h c 1633 13377.5 3442h 852 6979.6 1b44h * 1209 9904.1 26b0h 941 7708.7 1e1dh 0 1336 10944.5 2ac1h 941 7708.7 1e1dh # 1477 12099.6 2f44h 941 7708.7 1e1dh d 1633 13377.5 3442h 941 7708.7 1e1dh *for command 49h, 4bh, 4eh and 4fh. host have to make sure spkr is on when using this commands. *user could use scale factor in command 4eh&4fh combined with codec gain setting to set the desirable dtmf tone level
27 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 samples: play 2 beeps w/ -42db gain 49h 14h play tone #c5 (523hz) w/ -36db gain for 2 second 4bh a3h 10h beh play tone #e5 (659hz) w/ -48db gain for 1 second 4bh 55h 15h 19h play dtmf-1 (high tone is 6 db higher than low tone) 4eh 26h b0h 16h 4eh ffh 7fh play dtmf-0 (high tone is 6 db lower than low tone) 100ms 4fh 2ah c1h 1eh 1dh 3fh 7fh 0ah stop playing dtmf tone 48h command 51h function: write output port uo0-2 return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 01 0 1 0 0 0 1 x x x x x uo2 uo1 uo0 *cmd 51h is only available in version dr-v3 and dr-v4 command 5ah function: mx93000 codec misc. function return: ack0 or err7 db7 db6 db5 db4 db3 db2 db1 db0 01011010 xxxxxa2a1a0 d7 d6 d5 d4 d3 d2 d1 d0 *please reference to mx93000 data sheet for the definition of the mx93000 registers samples: turn on mx93000 mic path 5ah 00h 48h turn off mx93000 mic path 5ah 00h 01h set mic to maxima gain 5ah 02h 0fh set mic to minima gain 5ah 02h 00h turn on mx93000 spkr path 5ah 00h 03h turn off mx93000 spkr path 5ah 00h 01h set spkr to maxima gain 5ah 03h 00h set spkr to minima gain 5ah 03h 0fh
28 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 61h function: led display function return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 01100001 led2 led1 t t t t t t led1=1, led1 on (mx93521 pin5 low) led2=1, led2 on (mx93521 pin4 low) tttttt=0, no flash tttttt1 0, flash timer (64ms/unit) samples: led1 stay on 61h 40h led2 stay on 61h 80h led1 flash (512ms on / 512ms off) 61h 48h led2 flash (1024ms on / 1024ms off) 61h 90h led1 & led2 flash (128ms on / 128ms off) 61h c2h led1 & led2 off 61h 00h
29 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 6eh function: write compressed voice data to mx93521 for playing (vocoder mode) return: ack0 / err5 bbb = 010, 100, 110 db7 db6 db5 db4 db3 db2 db1 db0 0 1 1 0 1 b b b write data to mx93521 byte#1 byte#2 byte#3 byte#4 byte#5 byte#6 mx93521 equipped a 64 words play buffer, host should keep feeding compressed voice data to mx93521 when doing play function. once play buffer have no enough data to play, mx93521 will stop playing and send command 10h to host. when the play buffer is full, mx93521 will response err5. if this is the case, host should re-send this command later. host must feed mx93521 at least 12 bytes data per 20 mini-second. when host send command 30h, mx93521 will not start to play until received first 60 bytes data. the procedure to do play function in vocoder mode: step1: turn on vocoder mode (send command 41h/01h) step2: turn on spkr step3: set play mode (send command 30h) step4: send compressed voice data to mx93521 (send command 6?h+byte+byte+..) step5: if received ack0, goto step4 to send next 6ah/6ch/6eh command if received err5, wait 20-180 ms, then go back to step4 to re-send previous command if host want to stop play function or host reach the end of message, then goto step6 if received 10h, goto step7 (host did not send data to mx93521 fast enough) step6: wait until mx93521 play out data in play buffer (receiveing command 10h from mx93521) step7: turn off spkr step8: turn off vocoder mode (send command 41h/01h). command 6ah command 6ch
30 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 77h function: write lcd data bbb = 000, 001, 010, 011, 100, 101, 110, 111 return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 01110bbblcd data byte#1 byte#2 byte#3 byte#4 byte#5 byte#6 byte#7 * this command only valid when mx93521 set to serial interface mode samples: display [abcd] on lcd line 1 74h 41h 42h 43h 44h command 70h command 71h command 72h command 73h command 74h command 75h command 76h command 79h function: write lcd command return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 0111100 1 c7 c6 c5 c4 c3 c2 c1 c0 * this command only valid when mx93521 set to serial interface mode
31 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 lcd command set: c7 c6 c5 c4 c3 c2 c1 c0 00000001 01h clear display 0000001x02h cursor return home 00000100 04h cursor-1, no shift 00000101 05h cursor-1, shift 00000110 06h cursor+1, no shift 00000111 07h cursor+1, shift 00001000 08h display off 00001100 0ch display on, cursor off, blink off 00001101 0dh display on, cursor off, blink on 00001110 0eh display on, cursor on, blink off 00001111 0fh display on, cursor on, blink on 000100xx10h move cursor left 000101xx14h move cursor right 000110xx18h display shift left 000111xx1ch display shift right 1 xxxxxxx 80h-ffh set dd ram address 10000000 80h set cursor to the start of 1st line 11000000 c0h set cursor to the start of 2nd line samples: clear lcd display 79h 01h set cursor to the start of line 1 79h 80h set cursor to the start of line 2 79h c0h set cursor to the line 2, 3rd column 79h c2h move cursor left 79h 10h move cursor right 79h 14h example: to display [record ] at line #1 & [mm:ss] at line #2 clear lcd display & return cursor to home 79h 01h display [record ] at lcd line 1 76h 52h 45h 43h 4fh 52h 44h set cursor to the line 2, 4th column 79h c3h turn on counter display on lcd 21h 04h
32 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 80h function: request for record/play counter return: ack2, minute, second db7 db6 db5 db4 db3 db2 db1 db0 10000000 command 81h function: request for continuously record/play counter return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 10000001 t t t t t t t t 128 ms/unit when mx93521 received command 81h, mx93521 will periodically send command 42h (section 6.4) to host. host could display the record/play counter on lcd accordingly. this function will be disabled by mx93521 when record/play stop. command 88h dr-v4 function: download message return: a ck1, format (vocoder mode, format=81h if message is recorded with new format) (vocoder mode, format=80h if message is recorded with old format) db7 db6 db5 db4 db3 db2 db1 db0 10001000 once mx93521 received this command, mx93521 will start to send compressed voice data to host by using command 32h or 36h. when reach the end of message, mx93521 will send out command 30h. we recommend host do checksum calculation during downloading. after download completed, use command 41h/81h to get the checksum from mx93521 and compare if the checksum is match. the checksum is calculated by exclusive or all speech data in word format. command 89h dr-v5 function: upload message (vocoder mode) return: a ck2, msgnum_h, msgnum_l(upload start) / ack2, checksum_h, checksum_l(upload end) db7 db6 db5 db4 db3 db2 db1 db0 100010 01 mmmmmm mm m=00h, upload start m=01h, upload end command 8ah dr-v5 function: upload data return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 10001010 d d d d d d d d high byte d d d d d d d d low byte
33 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 8ch dr-v5 function: upload data return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 100011 00 d d d d d d d d high byte d d d d d d d d low byte d d d d d d d d high byte d d d d d d d d low byte command 8eh dr-v5 function: upload data return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 100011 10 d d d d d d d d high byte d d d d d d d d low byte d d d d d d d d high byte d d d d d d d d low byte d d d d d d d d high byte d d d d d d d d low byte command 91h dr-v4 function: set silence level return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 100100 01 xxxxll lllevel llll=0000 (level 0) set highest silence threshold (some of the speech will be treated as silence) llll=0011 (level 3) default value llll=1111 (level 15) set lowest silence threshold (all signal are treated as speech, no silence compression at all) command 98h dr-v5 function: read rom/ram wait state setting return: ack2, wsth,wstl db7 db6 db5 db4 db3 db2 db1 db0 100100 00
34 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 99h dr-v5 function: set rom/ram wait state return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 10010001 o o o o a a a a wait state oooo: ram wait state aaaa: rom wait state command a2h dr-v4 function: read mx93521 ram return: ack2, data_h, data_l db7 db6 db5 db4 db3 db2 db1 db0 11010010 address (high) address (low) command a4h dr-v4 function: write mx93521 ram return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 11010100 address (high) address (low) data (high) data (low) * only for testing purpose, user should not change any data in the ram area command aah dr-v5 function: read mx93521 internal rom return: ack2, data_h, data_l db7 db6 db5 db4 db3 db2 db1 db0 11010010 address (high) address (low)
35 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command b0h dr-v4 function: output all blocks which are used as data bank block return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 101100 00 mx93521 return block number by sending command 32h/34h/36h and ended with command 30h 32h, blk_h, blk_l 34h, blk_h, blk_l, blk_h, blk_l 36h, blk_h, blk_l, blk_h, blk_l, blk_h, blk_l 30h command b1h dr-v4 function: read flash memory return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 10 1 10 0 01 counter (read 1-255 byte from flash memory) command b2h dr-v4 function: read flash memory return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 101 10010 cnt_h cnt_l (read 1-65535 bytes from flash memory) when continuously read flash memory, mx93521 will send data with command 3xh to host & ended with command 30h. the address pointer will point to the next byte of the last byte read. host could send another continuous read command 0b1h or 0b2h to read out following data from flash memory. command b8h dr-v4 function: request for data bank block return: ack2, blk_h, blk_l db7 db6 db5 db4 db3 db2 db1 db0 101110 00
36 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command bah dr-v4 function: set r ead/write starting address return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 10 1 11 0 10 address pointer (high) address pointer (low) command bch dr-v4 function: set r ead/write starting address return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 10 1 11 1 00 block number (high) block number (low) address pointer (high) address pointer (low) command c1h dr-v4 command c2h dr-v4 command c3h dr-v4 command c4h dr-v4 command c5h dr-v4 command c6h dr-v4 command c7h dr-v4 function: write data to flash memory(data bank) return: ack0 or err0 (block number or address pointer is not accepted) db7 db6 db5 db4 db3 db2 db1 db0 11 0 00 b bb data to write to flash memory data to write to flash memory data to write to flash memory data to write to flash memory data to write to flash memory data to write to flash memory data to write to flash memory
37 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command cah dr-v4 function: erase block (release data block) return: ack0 or err0 db7 db6 db5 db4 db3 db2 db1 db0 11 0 01 0 10 block (high) block (low) command d4h dr-v4 function: read 1 word data from flash memory return: a ck2, data_h, data_l db7 db6 db5 db4 db3 db2 db1 db0 11 0 10 1 00 block (high) block (low) address (high) address (low) command d5h dr-v4 function: write 1 byte data to flash memory return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 11 0 10 1 01 block (high) block (low) address (high) address (low) data command d6h dr-v4 function: write 1 word (2 bytes) data to flash memory return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 11 0 10 1 01 block (high) block (low) address (high) address (low) data (high) data (low)
38 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command fah dr-v5 function: play v oice prompt from rom return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 11 1 11 0 01 voice prompt rom starting address high byte voice prompt rom starting address low byte command fch dr-v5 function: play v oice prompt from flash memory return: ack0 db7 db6 db5 db4 db3 db2 db1 db0 11 1 11 0 01 flash memory block # (high byte) flash memory block # (low byte) flash memory pointer (high byte) flash memory pointer (low byte) flash memory pointer range from 10h to 0ffeh * when mx93521 received command 0fah or 0fch from host, mx93521 start to play voice prompt from rom/ flash. after playing out all data, mx93521 will send command 10h to host. the voice prompt data are com- pressed speech data which is ended with one 0000h or six 0ffffh in the data stream.
39 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 6.4 mx93521 to host commands mx93521 will always respond a ack if received a command from host. besides that, mx93521 will send command to notify host that a specific event has happened. host could do action according to the command received. command 10h function: play mode, reach the end of the playing message db7 db6 db5 db4 db3 db2 db1 db0 00 0 10 0 00 command 18h function: play mode, reach the start of the playing message db7 db6 db5 db4 db3 db2 db1 db0 00 0 11 0 00 command 20h function: record mode, out of flash memory db7 db6 db5 db4 db3 db2 db1 db0 00 1 00 0 00 command 42h function: mx93521 outputs record / play counter db7 db6 db5 db4 db3 db2 db1 db0 01 0 00 0 10 m m m m m m m m minute s s s s s s s s second command 52h dr-v4 function: mx93521 outputs message number db7 db6 db5 db4 db3 db2 db1 db0 01 0 10 0 10 message number (high byte) message number (low byte)
40 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 command 30h dr-v4 command 31h dr-v4 command 32h command 33h dr-v4 command 34h dr-v4 command 35h dr-v4 command 36h command 37h dr-v4 function: mx93521 outputs data with command 3xh and ending the function with command 30h command 32h function: v ocoder record mode, mx93521 outputs compressed voice data (silence frame) db7 db6 db5 db4 db3 db2 db1 db0 00 1 10 0 10 byte #1 byte #2 command 36h function: v ocoder record mode, mx93521 outputs compressed voice data (speech frame) db7 db6 db5 db4 db3 db2 db1 db0 00 1 10 1 10 byte #1 byte #2 byte #3 byte #4 byte #5 byte #6 when in vocoder mode, mx93521 use this command to send compressed voice data to host. mx93521 equipped with 64 byte buffer internally. if buffer is full, data will be discarded.
41 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 7. dc characteristics?g ta=0 to 70 c , vcc=5v 10h storage temperature range?g-55 c - 150 c symbol parameter condition min typ max unit vcc supply voltage 4.5 5.0 5.5 volt gnd ground 0 volt ttl level input(it) vih input high voltage 2.0 v vil input low voltage 0.8 v schmitt trigger input (is) vih input high voltage 0.7*vcc v vil input low voltage 0.3*vcc v 8ma output (oa) voh onput high voltage ioh=-8ma 2.4 vol onput low voltage iol=8ma 0.4 v 16ma output (ob) voh onput high voltage ioh=-16ma 2.4 v vol onput low voltage iol=16ma 0.4 v supply cerrent icc normal 45 70 ma icc hold mode 10 ma icc power down 3 6 ma
42 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 8.ac timing and characteristics: reset timing rst\ ead15~ead0 ed15~ed0 control signals valid valid tw(rst) 0001 pc=0000 (inactive) 0000 opt18~opt0 bio7~bio0 note: control signals holda\edce\epce\erd\ewr\ cas\ras\drd\dwr\ symbol parameter min nom max unit tw(rst) reset low pulse width 2*46.5ns output port timing ad15-ad0 ead15-ead0 opt18~opt0 bio7~bio0 xf\ pc=n, sxf/rxf or out xx pc=n+1 pc=n+2 td(a-o) output ports and external flag(xf\) timing symbol parameter min nom max unit td(a-o) address to output ports delay time 0 10 ns
43 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 codec transmit and receive timing n=1 n=2 n=3 n=4 sampling 16 bit s n=1 n=2 n=3 n=4 transmit 16 bit s td(ch-fs) td(ch-fs) ts(dr) th(dr) tc thpd tlpd td(ch-dx) cmck cfs cdr0 cdx0 symbol parameter min nom max unit tc cmck cycle time 650 ns tlpd cmck low pulse duration 315 335 ns thpd cmck high pulse duration 315 335 ns td(ch-fs) cmck to cfs delay time 20 ns td(ch-dx) cmck rising edge to dx valid 10 ns ts(dr) dr set-up time before cmck falling edge 10 ns th(dr) dr hold time before cmck falling edge 10 ns interrupt timing int0\ int1\ int2\ ad15-ad0 tw fetch n+0 fetch n+1 fetch n+1 fetch n+1 fetch i symbol parameter min nom max unit tw int\ low pulse duration 3q* ns note:q=15.5 ns
44 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 sram/rom read timing symbol parameter min nom max unit tcs chip select access time 26.5+wxt ns taa address access time 26.5+wxt ns tdr data read setup time 12 ns toh data hold from end of read 0 ns tas address setup time 0 5 ns tdw data to ewr\ low overlap 12 ns tdh data hold from end of write 0 ns twr write recovery time 0 ns edce\,epce\ ead15-ead0 erd\ ed15-ed0 data i n tcs ta a tdr toh *note: t=31ns w:wait state number edce\ ead15-ead0 ewr\ ed15-ed0 ta s tdw data out tdh twr sram write timing
45 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 symbol parameter min nom max unit ts(a-h) address set-up time before hold\ low 5 3q-10 ns td(hh-ha) hold\ high to holda\ high 0 1q 1q+10 ns ten(ah-a) address driven after holda\ high 1q-10 1q 2q ns *note: q=15.5n hold timing n n+1 n+2 n+3 n+4 ts(a-h) ten(ah-a) td(hh-ha) ead15-ead0 ed15-ed0 epce\ edce\ ewr\ erd\ hold\ holda\
46 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 9.package information 100-pin lqfp item millimeters inches a 16.00 .05 .630 .002 b 14.00 .05 .551 .002 c 14.00 .05 .551 .002 d 16.00 .05 .630 .002 e 12.00 [ref] .472 [ref] f .60 [ref] .024 [ref] g .60 [ref] .024 [ref] h .16 [typ.] .006 [typ.] i .50 [typ.] .020 [typ.] j 1.00 [typ.] .039 [typ.] k 0.60 [typ.] .024 [typ.] l .25 [typ.] .010 [typ.] m .10 max. .004 max. n 1.4 .05 .055 o .10 min. .004 min. p 1.50 max. .059 max. note: each lead centerline is located within .25mm[.01 inch] of its true position [tp] at a maximum material condition. 100-pin pqfp item millimeters inches a 24.80 .40 .976 .016 b 20.00 .13 .787 .005 c 14.00 .13 .551 .005 d 18.80 .40 .740 .016 e 12.35 [ref] .486 [ref] f .83 [ref] .033 [ref] g .58 [ref] .023 [ref] h .30 [typ.] .012 [typ.] i .65 [typ.] .026 [typ.] j 2.40 [typ.] .094 [typ.] k 1.20 [typ.] .047 [typ.] l .15 [typ.] .006 [typ.] m .10 max. .004 max. n 2.75 .15 .018 .006 o .10 min. .004 min. p 3.30 max. .103 max. note: each lead centerline is located within .25mm[.01 inch] of its true position [tp] at a maximum material condition. a b e cd i h g f 1 25 26 50 51 75 76 100 n m j k l p o a b e cd i h g f 130 31 50 51 80 81 100 n m j k l p o
47 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 10. ordering information part no. package mx93521fc pqfp mx93521uc lqfp mx 93 521 ? c mxic commercial company 0-70 o c prefix package type f: pqfp, u: lqfp family prefix product number appendix 1. new added features compared with dr-v4 new features in dr-v5 1.support both format used in v3 (without silence compression) and v4 (with silence compression) 2.add version number and date information at rom address 10h-13h 3.add direct codec accessing function 4.add command 0ah (point to specific message) 5.add dtmf tone generator 6.add upload message from host to mx93521 function 7.add command 99h (change rom/ram wait state) 8.add play voice prompt from flash memory function 9.change silence threshold setting new features in dr-v6 1.add silence detection function 2.new codec.asm that improve tone response 3.add safe_chip_erase function (erase only good blocks) 4.improve find_empty_blk subroutine 5.add skip frames function in play mode
48 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 appendix 2. sample flow chart for host to implement up serial interface send_rcvd_cmd( ) return sclk low? yes yes yes yes da\ low? call snd_rcvd_cmd ( ) every 50 usec byte: txdata, cmdout[0..7] txdata, cmdin[0..7] nibble; tbcnt, txcnt tbcnt, rxcnt bit: data2snd, clk, obit no no yes rbcnt==9? rbcnt==0? obit==0? stop bit error obit==0? rxcnt== (cmdin[0] & 7) rxcnt==0? (cmdin[0] & 0xf0) ==0xe0? tbcnt==0? data2snd==0? tbcnt==10? tbcnt==1? txdata.0==0? txdata.0==0? obit==1? yes no clk=0 clk=1 obit=sout rxdata>>=1 rxdata=(obit<<7) data bit cmdin[rxcnt]=rxdata rbcent=0 rxdata=0 set sclk high txdata=cmdout[0] tbcnt=10 obit=0 rbcnt ++ rxcnt ++ rxcnt=0 rxdata=0 rbcnt=0 decode_cmd( ) rxcent=0 received a complete command from mx93521. precess command which is stored in cmdin[0:7] obit=1 obit=1 data2snd=0 txcnt=0 txcnt++ txdata=cmdout [txcnt] tbcnt txdata>>=1 tbcnt-- sin low sin high to send command to mx93521: load command to cmdout[0:7] then set data2snd=1 after sending out all commands, dats2snd will be cleared to 0. clk=1 clk==1? no yes yes yes yes yes yes yes no no no no no no no set sclk low return yes yes
49 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 appendix 3. recommend commands sequence to implement a digital recorder (star* means function is optional) a3.1 record message (tp3054): functions host send mx93521 acknowledge * turn on spkr 41h/04h ack0 * beep 49h/0ah ack0 * turn off spkr 41h/04h ack0 turn on mic 41h/08h ack0 * led #1 flash 61h/48h ack0 * append recording 41h/02h ack0 * overwrite recording 41h/03h ack0 * turn on voice activated mode 41h/05h ack0 start to record 28h ack2,msg#_h,msg#_l * clear lcd 79h/01h ack0 * display [record] on lcd 76h/52h/45h/43h/4fh/52h/44h ack0 * move cursor to line #2, col #3 79h/c3h ack0 * turn on message counter display on lcd 21h/04h ack0 a3.2 stop recording (tp3054): functions host send mx93521 acknowledge stop recording 21h/01h ack2,chksum_h, chksum_l turn off mic 41h/08h ack0 * led #1 off 61h/00h ack0 * turn on spkr 41h/04h ack0 * beep 49h/0ah ack0 * turn off spkr 41h/04h ack0 a3.3 out of memory, received command 20h from mx93521 during recording (tp3054): functions host send mx93521 acknowledge turn off mic 41h/08h ack0 * led #1 off 61h/00h ack0 * turn on spkr 41h/04h ack0 * beep 49h/0ah ack0 * turn off spkr 41h/04h ack0
50 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 a3.4 play message (tp3054): functions host send mx93521 acknowledge move message pointer to specific message 09h/xxh ack0/err6 turn on spkr 41h/04h ack0 * beep 49h/0ah ack0 * led #2 flash 61h/88h ack0 start to play 30h ack2,msg#_h,msg#_l * send msg counter to host every 512 ms 81h/04h ack0 * clear lcd 79h/01h ack0 * display [play] on lcd 74h/50h/4ch/41h/59h ack0 * move cursor to line #2, col #3 79h/c3h ack0 * turn on message counter display on lcd 21h/04h ack0 a3.5 function during playing message functions host send mx93521 acknowledge * fast forward playing (2x) 3ah/01h/01h ack0 * rewind playing (2x) 3ah/81h/01h ack0 * set repeat start point 21h/10h ack0 * set repeat end point 21h/20h ack0 * disable repeat mode 21h/40h ack0 a3.6 stop playing message (tp3054): functions host send mx93521 acknowledge stop playing 21h/01h ack0 * led #2 off 61h/00h ack0 * beep 49h/0ah ack0 turn off spkr 41h/04h ack0 a3.7 end of message, received command 10h from mx93521 during playing (tp3054): functions host send mx93521 acknowledge * led #2 off 61h/00h ack0 * beep 49h/0ah ack0 turn off spkr 41h/04h ack0
51 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 a3.8 message search functions host send mx93521 acknowledge 1 turn on spkr 41h/04h ack0 2 move message pointer to the 1st msg 09h/ffh ack0/err6 3 play current message for 3 second 31h/03h ack0 4 10h 5 move message pointer to the next message 09h/01h ack0/err6 6 if received ack0, goto step #3 if received err6, goto step #7 7 turn off spkr 41h/04h ack0 a3.9 message found functions host send mx93521 acknowledge 1 stop playing 21h/01h ack0 2 play current message 30h ack0 3 turn off spkr 41h/04h ack0
52 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 a3.10 the procedure for using flash memory as data bank memory host send mx93521 response 1 request a empty block to be used 0b8h 0a2h, blk_h, blk_l as data block 2 set continuous read start address 0bch, blk_h, blk_l, adr_h, adr_l 0a0h 3 continuous read 20 bytes 0b1h, 14h 0a0h 037h,d1,d2,d3,d4,d5,d6,d7 037h,d1,d2,d3,d4,d5,d6,d7 036h,d1,d2,d3,d4,d5,d6 030h continuous read 298 bytes 0b2h, 01h,2ah 0a0h 037h,d1,d2,d3,d4,d5,d6,d7 037h,d1,d2,d3,d4,d5,d6,d7 ...... 034h,d1,d2,d3,d4 030h 4 continuous write 7 bytes 0c7h,d1,d2,d3,d4,d5,d6,d7 0a0h continuous write 6 bytes 0c6h,d1,d2,d3,d4,d5,d6 0a0h continuous write 5 bytes 0c5h,d1,d2,d3,d4,d5 0a0h continuous write 4 bytes 0c4h,d1,d2,d3,d4 0a0h continuous write 3 bytes 0c3h,d1,d2,d3 0a0h continuous write 2 bytes 0c2h,d1,d2 0a0h continuous write 1 bytes 0c1h,d1 0a0h 5 erase block cah, blk_h, blk_l 0a0h 6 read 1 word from flash memory 0d4h, blk_h, blk_l, adr_h, adr_l 0a2h, data1, data2 7 write 1 byte to flash memory 0d5h, blk_h, blk_l, adr_h, adr_l, d1 0a0h 8 write 2 bytes to flash memory 0d6h, blk_h, blk_l, adr_h, adr_l, d1, 0a0h d2 each block in flash memory is 4k byte. the first 16 bytes are reserved for mx93521 as data link data, host could read but could not write data to it. so, the host usable data are from address 10h-0fffh.
53 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 appendix 4. flow chart of using mx93521 in vocoder mode (parallel interface) a4.1 record mode (background) record return yes no wait4ack==0? reset mx93521 [bit] wait4ack=1 rcvd=data2snd=0 stop1=stop2=0 pause1=pause2=0 end_of_rec=0 [byte] txcnt=rxcnt=0 yes no wait4ack==0? [vocoder mode on] cmdout[0]=0x41 cmout[1]=0x01 data2snd=wait4ack=1 yes no wait4ack==0? [mic on] cmdout[0]=0x5a cmdout[1]=0x00 cmdout[2]=0x48 data2snd=wait4ack=1 [set mic gain] cmdout[0]=0x5a cmdout[1]=0x02 cmdout[2]=0x04 data2snd=wait4ack=1 [vocoder mode off] cmdout[0]=0x41 cmdout[1]=0x01 data2snd=wait4ack=1 [start to record] cmdout[0]=0x28 data2snd=wait4ack=1 wait 10 msec for mx93000 to settle yes no wait4ack==0? yes no wait4ack==0? yes yes no no no no toggle pause? wait4ack==0? pause1=wati4ack=1 stop recording? end_of_rec==1? yes yes pause1=wati4ack=1
54 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 a4.2 play mode (background) play return yes no wait4ack==0? reset mx93521 [bit] wait4ack=1 rcvd=data2snd=0 [byte] txcnt=rxcnt=0 yes no wait4ack==0? [vocoder mode on] cmdout[0]=0x41 cmout[1]=0x01 data2snd=wait4ack=1 yes no wait4ack==0? [speaker on] cmdout[0]=0x5a cmdout[1]=0x00 cmdout[2]=0x03 data2snd=wait4ack=1 [set spkr gain] cmdout[0]=0x5a cmdout[1]=0x03 cmdout[2]=0x05 data2snd=wait4ack=1 [vocoder mode off] cmdout[0]=0x41 cmdout[1]=0x01 data2snd=wait4ack=1 (load data from memory to byte[0..5]) (load no more than 6 bytes at a time) (bytecnt=bytes loaded) cmdout[0]=0x68+bytecnt for (i=0; i 55 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 a4.3 command/data send/receive handling routine (interrupt) interrupt yes yes yes yes yes no no no no no no no pack\ = low? stop2==1? return yes stop1==1? rxcnt== cmdin[0]& 0x7 ? (rxcnt==0) && (cmdin[0] &0xf0 ==0xe0? data2snd==1? txcnt== cmdout[0] & 0x7 ? [read data from mx93521] rxdata[7..0]=bio[7..0] cmdin[rxcnt]=rxdata decode_cmd ( ) rxcnt=0 rxcnt++ [write data to mx93521 bio=cmdout[txcnt] txcnt=0 data2snd=0 txcnt++ [write cmd to mx93521] bio=0x21 stop2=1 [write cmd to mx93521] bio=0x01 stop1=stop2=1
56 mx93521 p/n:pm0426 rev. 2.2, jan 20, 1998 a4.4 received command interpretation routine (interrupt) decode_cmd ( ) yes yes yes no no no no no cmdin[0]==0x36? cmdin[0]==0x32? cmdin[0]==0x30? end_of_rec=1 [write data to memory} bytecnt=cmdin{0} & 0x7 for (i=0; i 57 mx93521 m acronix i nternational c o., l td. headquarters: tel:+886-3-578-8888 fax:+886-3-578-8887 europe office: tel:+32-2-456-8020 fax:+32-2-456-8021 japan office: tel:+81-44-246-9100 fax:+81-44-246-9105 singapore office: tel:+65-747-2309 fax:+65-748-4090 taipei office: tel:+886-3-509-3300 fax:+886-3-509-2200 m acronix a merica, i nc. tel:+1-408-453-8088 fax:+1-408-453-8488 chicago office: tel:+1-847-963-1900 fax:+1-847-963-1909 http : //www.macronix.com macronix international co., ltd. reserves the rignt to change product and specifications without notice.


▲Up To Search▲   

 
Price & Availability of MX93521-V6

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X